package com.qq.service;

import java.util.HashMap;

/**
 * 功能：该类负责管理所有与客户端通信的线程
 * @author 可凡
 */
public class ManageServerThread {
    private static final HashMap<String, ServerConnectClientThread> serverHashMap = new HashMap<>();

    /**
     * 功能：该方法负责将一个ServerConnectClientThread对象放入到集合中
     * @param userId 登录id
     * @param serverConnectClientThread 登录id对应线程
     */
    public static void addServer(String userId, ServerConnectClientThread serverConnectClientThread) {
        serverHashMap.put(userId, serverConnectClientThread);
    }

    /**
     * 功能：根据参数返回一个对应的ServerConnectClientThread对象
     * @param userId 登录id
     * @return 若存在则返回一个ServerConnectClientThread对象，否则返回nill
     */
    public static ServerConnectClientThread getServer(String userId) {
        return serverHashMap.get(userId);
    }

    /**
     * 功能：该方法可以得到所有在线用户的userId
     * @return 返回一个以空格间隔的userId字符串
     */
    public static String getAllUsers() {
        String allUsers = "";
        for (String s : serverHashMap.keySet()) {
            allUsers += s + " ";
        }
        return allUsers;
    }

    /**
     * 功能：删除一个userId对应的线程
     * @param userId 登录id
     */
    public static void removeServer(String userId) {
        serverHashMap.remove(userId);
    }

    /**
     * 功能：查询集合中是否存在其id对应的线程
     * @param userId 登录id
     * @return 存在返回true，反之则返回false
     */
    public static boolean checkUser(String userId) {
        return serverHashMap.containsKey(userId);
    }
}
